public class Singleton<T> where T : class, new()
{
    // 私有的静态实例，静态才能通过类名来访问。
    static T _instance;

    // 线程索
    static readonly object _lock = new();

    // 静态属性
    public static T Instance
    {
        get
        {
            // 双重检查带来线程安全。
            if (_instance == null)
            {
                lock (_lock)
                {
                    _instance ??= new();
                }

            }
            return _instance;
        }
    }

    public virtual void Init()
    {
        
    }
}